Automatic selection of SIM card for multi-SIM mobile devices

ABSTRACT

A mobile device includes multiple subscriber identification module (SIM) cards. When a user of the mobile device requests to call a phone number, the mobile device determines a mobile telecommunications service provider of the phone number, based on service provider information received for the phone number from a service mapping server. The mobile device selects for the call a SIM card from the multiple SIM cards that is associated with the determined service provider of the phone number. The mobile device places the call to the phone number using the selected SIM card.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/929,583, filed Jun. 27, 2013, which is a continuation of U.S. patentapplication Ser. No. 13/481,728, filed May 25, 2012, which claims thebenefit of U.S. Provisional Application No. 61/563,768, filed Nov. 26,2011. Each of these applications is incorporated by reference herein intheir entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention pertains in general to mobile devices and morespecifically to mobile devices with multiple subscriber identificationmodule (SIM) cards (“multi-SIM mobile devices”).

2. Description of the Related Art

Many mobile devices, such as cell phones, smart phones, and the likeinclude a subscriber identification module (SIM) card. The SIM card of acell phone, for example, stores information that allows the phone toaccess the network of a service provider to communicate with otherdevices. When a user uses the cell phone to call a phone number that isassociated with a different service provider than that of the SIM card,the call has to traverse between service provider networks. In somecountries, service providers charge inter-carrier fees to users forcalls that traverse between service provider networks. Thus, there is aneed for a way for users to avoid having to pay inter-carrier fees forcalls that traverse between service provider networks.

BRIEF SUMMARY OF THE INVENTION

Methods, computer program products, and computer systems are describedfor processing requests to place calls on mobile devices having multiplesubscriber identification module (SIM) cards. When a user of the mobiledevice requests to call a phone number, the mobile device determines amobile telecommunications service provider of the phone number, based onservice provider information received for the phone number from aservice mapping server. The mobile device selects for the call a SIMcard from the multiple SIM cards that is associated with the determinedservice provider of the phone number. The mobile device places the callto the phone number using the selected SIM card. In this manner, sincethe call is made using the determined service provider of the phonenumber, inter-carrier charges to the caller are avoided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a mobile communicationsenvironment according to one embodiment.

FIG. 2 is a block diagram illustrating a detailed view of a mobiledevice according to one embodiment.

FIG. 3 is a block diagram illustrating a detailed view of a mobiledevice according to an alternative embodiment.

FIG. 4 is a flow chart illustrating operations of a mobile device inadding a phone number according to one embodiment.

FIG. 5 is a flow chart illustrating operations of a service mappingserver in processing a request for service provider information of aphone number according to one embodiment.

FIG. 6 is a flow chart illustrating operations of a mobile device inprocessing a request to place a call according to one embodiment.

FIG. 7 is a flow chart illustrating operations of a mobile device inprocessing a request to place a call according to an alternativeembodiment.

The figures depict an embodiment for purposes of illustration only. Oneskilled in the art will readily recognize from the following descriptionthat alternative embodiments of the structures and methods illustratedherein may be employed without departing from the principles describedherein.

DETAILED DESCRIPTION

I. Overview

FIG. 1 is a high-level block diagram of a mobile communicationsenvironment 100 according to one embodiment. FIG. 1 illustrates fourmobile devices 102 and a service mapping server 104 connected via awireless network 108 and the Internet 110. Although the illustratedenvironment 100 only shows a few of mobile devices 102, in practicethere may be hundreds of thousands, even millions of mobile devices 102operating concurrently.

FIG. 1 uses like reference numerals to identify like elements. A letterafter a reference numeral, such as “102A,” indicates that the textrefers specifically to the element having that particular referencenumeral. A reference numeral in the text without a following letter,such as “102,” refers to any or all of the elements in the figuresbearing that reference numeral (e.g. “102” in the text refers toreference numerals “102A,” “102B,” “102C,” and/or “102D” in thefigures).

The mobile devices 102 are devices that are configured to make andreceive calls over the wireless network 108. The mobile devices 102 canalso be used to access the Internet 110 via the wireless network 108.Each mobile device 102 includes an operating system, such as Android,iOS, Nucleus, Brew, ThreadX or Infineon OS.

In one embodiment, each mobile device 102 of the mobile communicationsenvironment 100 includes multiple subscriber identity module (SIM)cards. For example, various mobile devices 102 are available that havecapacity for two or four SIM cards. Each SIM card is associated with aspecific, individual mobile telecommunications service provider (alsoknown as a Multiple Network Operator or “MNO”), and stores identifyinginformation (e.g., an IMSI of the subscriber, an authentication key,and/or a phone number of the subscriber) that allows a mobile device 102to access the network of the mobile telecommunications service provider.As an example, a mobile device 102 may include two SIM cards. SIM Card#1 may be for accessing the network of service provider A and SIM Card#2 may be for accessing the network of service provider B.

In one embodiment, when a mobile device 102 receives a request from auser to call a phone number, either through direct keypad entry of thephone number, selection of a contact in the mobile device's contactdirectory, or selection of a phone number via hyperlink or other means,the mobile device 102 determines the service provider of the phonenumber using the phone number itself. More specifically, the mobiledevice 102 determines the service provider by transmitting all or partof the phone number to the service mapping server 104. The servicemapping server 104 maintains a service provider database 106 thatassociates (e.g., indexes or cross-references) phone numbers with theservice provider that controls that network to which phone numbers areassigned. The mapping server 104 thus uses the received information tolookup the service provider associated with the phone number. Theservice mapping server 104 returns service provider information (e.g.,an identifier of the service provider) to the mobile device 102. Themobile device 102 activates the SIM card for the identified serviceprovider, and places the call to the phone number using that theactivated SIM card.

Continuing with the example from above, assume the mobile device 102receives a request to place a call to the phone number (999) 321-9876.The mobile device 102 can transmit this phone number (or a portionthereof, such as area code and exchange) and additional information tothe service mapping server 104, which in turn can determine that thephone number is assigned to service provider B. In this example, themobile device 102 would place the call using the SIM card for serviceprovider B. If the mobile device 102 does not have a SIM card for theidentified service provider, another SIM card can be selected, such asthe user's home SIM card, a default alternative SIM card, or the like.

The ability of a mobile device 102 to automatically select the SIM cardfor a call based on service provider information received from theservice mapping server 104 is referred to as automatic SIM cardselection feature. With the automatic SIM card selection, since a callis made to a phone number using the network of the call recipient'sservice provider, it allows the user of the device 102 to avoid feescharged when calls traverse between multiple service provider networks(i.e., inter-carrier fees).

In one embodiment, a user of a mobile device 102 can enable or disablethe automatic SIM card selection feature. For example, a user can enableor disable the feature for all calls placed by a mobile device 102. Inone embodiment, the feature can be enabled or disabled on an individualbasis for particular phone numbers, as selected by the user. Forexample, a user may enable the feature for phone number A and disablethe feature for phone number B. Further, the feature can be enabled ordisabled for individual contacts of the user, with respect to all ofcontact's phone numbers. For example, the user can enable the feature tobe used with all of the numbers of contact X and none of the phonenumbers of contact Y.

The service mapping server 104 provides service provider information tomobile devices 102 of the mobile communications environment 100. Theservice mapping server 104 includes a service provider database 106 thatstores phone numbers in association with service provider information.The service provider information of a phone number includes informationthat indicates the servicer provider of the phone number, and optionallyapplicable communication rate codes or tariffs, network accessinformation, and the like.

In one embodiment, a request received by the service mapping server 104from a mobile device 102 for service provider information of a phonenumber includes the phone number and identifying information of themobile device 102 making the request (e.g., International MobileSubscriber Identity (IMSI) of a SIM card of the device 102 and a phonenumber or area code of the SIM card). In one embodiment, when theservice mapping server 104 receives a request from a mobile device 102for service provider information of a phone number, the service mappingserver 104 searches the database 106 for the service provider using thephone number and optionally an IMSI associated with the phone number.

If the database 106 does not have the phone number, service mappingserver 104 transmits a message to the mobile device 102 indicating thatservice provider information is not available for the phone number. Onthe other hand, if the phone number is indentified in the database 106,the service mapping server 104 retrieves from the database 106 serviceprovider information of the phone number and transmits the informationto the mobile device 102.

In one embodiment, accounting information is stored of the transmittalfor charging a user of the mobile device 102. Accounting information mayinclude, for example, a time and date of the transmittal, the phonenumber for which service provider information was provided, andidentifying information of the mobile device 102.

In one embodiment, a user of a mobile device 102 is charged a fee by anadministrative entity of the server 104 each time service providerinformation of a phone number is provided to the device 102. In oneembodiment, a user of a mobile device 102 is charged a fee each time themobile device 102 communicates with the service mapping server 104. Inanother embodiment, a user of a mobile device 102 is charged a periodicfee (e.g., a monthly fee) or a onetime fee for having access to theservice mapping server 104.

The wireless network 108 is a communication pathway for mobile devices102. In one embodiment, the wireless network 108 is one or more cellularnetworks that include multiple base stations, controllers, and one ormore core networks that typically includes multiple switching entitiesand gateways. In one embodiment, a cellular network uses one or more ofthe following technologies: GERAN (Global System for MobileCommunications (GSM) Edge Radio Access Network), U-TRAN (UniversalMobile Telecommunications System (UMTS) Terrestrial Radio AccessNetwork), E-UTRAN (Evolved UTRAN), Worldwide Interoperability forMicrowave Access (WiMAX), and Long Term Evolution (LTE). Gateways areprovided from these radio access networks to the Internet 110, such asvia a Service GPRS Support Node/Mobile Management Entity for a GERAN, ora Serving Gateway and Packet Data Network Gateway for a UTRAN.

In one embodiment, mobile devices 102 communicate in a cellular networkvia radio frequencies. In one embodiment, each mobile telecommunicationsservice provider is allocated certain frequencies to allow subscribersof the service provider to communicate. The frequencies allocated to aservice provider are referred to collectively as the network of theservice provider herein.

II. System Architecture

FIG. 2 is a block diagram illustrating a detailed view of a mobiledevice 102 according to one embodiment. The mobile device 102 includes aprocessor 202, an input device 204, an output device 206, a transceiverdevice 208, multiple SIM cards 210, and a memory 212.

The processor 202 processes instructions and may comprise variouscomputing architectures including a complex instruction set computer(CISC) architecture, a reduced instruction set computer (RISC)architecture, or an architecture implementing a combination ofinstruction sets. The processor 202 comprises an arithmetic logic unit,a microprocessor, or some other information appliance equipped totransmit, receive and process electronic data signals from the memory212, the input device 204, the output device 206, the transceiver device208, or the SIM cards 210.

The input device 204 is a device configured to provide user inputs tothe mobile device 102. In one embodiment, the input device 204 is analphanumeric input device, such as a QWERTY keyboard, a key pad orrepresentations of such created on a touch screen adapted to communicateinformation and/or command selections to the processor 202. In oneembodiment, the input device 204 is a user input device equipped tocommunicate positional data as well as command selections to theprocessor 202 such as a trackball, a stylus, a pen, a touch screen,cursor direction keys or other mechanisms to cause movement adjustmentof an image.

The output device 206 is a device equipped to display electronic imagesand data as described herein. Output device 206 may be, for example, aliquid crystal display (LCD), light emitting diode display (LED), or anyother similarly equipped display device. In one embodiment, the outputdevice 206 is equipped with a touch screen in which a touch-sensitive,transparent panel covers the screen of output device 206.

The transceiver device 208 is a device that receives and transmitsinformation via the wireless network 108. The information received andtransmitted by the transceiver device 208 is carried in radio frequencysignals. The transceiver device 208 allows the mobile device 102 tocommunicate with other mobile devices 102, the service mapping server104, and other devices connected to the wireless network 108 and theInternet 110.

The SIM cards 210 are integrated circuits that store information. In oneembodiment, each SIM card stores identifying information that identifiesa subscriber of a mobile telecommunications service provider. In oneembodiment, the identifying information includes an IMSI of thesubscriber, an authentication key, and/or a phone number of thesubscriber. The identifying information allows the mobile device 102 toaccess the network of the service provider. Other information that maybe stored in a SIM card includes information that uniquely identifiesthe SIM card (e.g., integrated circuit card identifier (ICCID)), networkstate information, configuration information, and account information.In one embodiment, each SIM cards can be removed from the mobile device102.

The memory 212 stores instructions and data that may be executed by theprocessor 202 for performing the techniques described herein. The memory212 is a non-transitory computer-readable storage medium, such as adynamic random access memory (DRAM) device, a static random accessmemory (SRAM) device, Flash RAM (non-volatile storage), combinations ofthe above, or some other memory device known in the art. The memory 212includes a contacts module 214, a sync management module 216, a callmodule 218, and a contacts database 220. As used herein, the term“module” refers to computer program instruction and other logic forproviding a specified functionality. The processor 202 is adapted toexecute modules for providing the functionality described herein.

The sync management module 216 generally manages the functionality ofassociating phone numbers and contacts with individual SIM cards 210 inthe mobile device 102. More specifically, the sync management module 216manages use cases including making a telephone call, adding/editing aphone number for a contact, configuring the sync management module's ownfunctionality, as further described below. In one embodiment, the syncmanagement module 216 is an installable application that can be, forexample, retrieved from online application store.

The contacts module 214 manages a contact database 220 of the mobiledevice 102. In one embodiment, the contacts database 220 stores phonenumbers of contacts. A contact is an entity, such as a person or abusiness.

The contacts module 214 receives requests to add phone numbers to thedatabase 220 for contacts. A request may be, for example, to add a phonenumber for a new contact, to add a new phone number for an existingcontract, or for a phone number to replace a stored number of a contact.When a user of the mobile device 102 requests to add a phone number fora new contact, the contacts module 214 stores the name of the contactand the phone number in the contacts database 220. Other contactinformation of the contact may also be stored, such as a job title andan e-mail address of the contact. When a user of the device 102 requeststo add a new phone number for an existing contact, the contacts module214 stores the phone number in the contacts database 220 as being anumber of the contact. When a user of the device 102 requests for aphone number to replace a stored phone number of a contact, the contactsmodule 214 identifies the contact in the database 220 and replaces thecurrently stored phone number of the contact in the database 220 withthe phone number received.

In one embodiment, when a user requests to add a phone number for acontact, the sync management module 216 presents an interface to theuser inquiring whether the user would like to activate the automatic SIMcard selection feature for the phone number. Activating the automaticSIM card selection feature for a phone number is referred to herein as“syncing.” Syncing the phone number with the feature signifies that themobile device 102 will automatically select a SIM card for a call to thephone number based on service provider information provided by theservice mapping server 104 for the phone number. In one embodiment, theuser is notified that there is a fee associated with syncing the phonenumber. In one embodiment, if the user requests to sync the phone numberwith the feature, the sync management module 216 causes the contactsmodule 214 to store an indicator with the phone number in the database220 indicating that the phone number is synced with the feature. Asindicated above, the sync management module 216 can also enable the userto sync all of the phone numbers of a given contact.

In one embodiment, if the user requests to sync the phone number withthe feature, the sync management module 216 transmits to the servicemapping server 104 through the transceiver device 208 a request forservice provider information of the phone number. In one embodiment, inaddition to the phone number, identifying information of a SIM card 210of the device 102 is transmitted with the request (e.g., identifyinginformation of a SIM card 210 in a first slot of the device 102 or adefault SIM card).

If the requested service provider information is received from theservice mapping server 104, the sync management module 216 causes thecontacts module 214 to store the service provider information in thedatabase 220 along with the phone number. In one embodiment, whenrequesting service provider information of the added phone number, thesync management module 216 also requests service provider information ofany other phone numbers that are synced for purposes of updating theservice provider information of the phone numbers in the database 220.

In one embodiment, the sync management module 216 periodically updatesservice provider information for the synced phone numbers in thecontacts database 220. In one embodiment, periodically (e.g., once amonth) the sync management module 216 identifies each phone number inthe database 220 synced with the automatic SIM card selection feature.The sync management module 216 requests and receives service providerinformation for each identified phone number from the service mappingserver 104. If the stored service provider information of a phone numberhas changed, the sync management module 216 causes the contacts module214 to update the database 220 to include the latest service providerinformation received by the contacts module 214 from the service mappingserver 104.

The contacts module 214 receives requests for phone numbers of contacts.In one embodiment, when a user of the mobile device 102 request thephone number of a contact, the contacts module 214 identifies the phonenumber of the contact in the contacts database 220. The contacts module214 retrieves the phone number from the database 220 and presents thenumber to the user via the output device 206.

The sync management module 216 allows a user to enable or disable theautomatic SIM card selection feature for the mobile device 102. In oneembodiment, if a user of the mobile device 102 requests to edit thesettings of the automatic SIM card selection feature, the syncmanagement module 216 presents an interface to the user where the usercan request to enable or disable the sync feature for the device 102. Ifthe user requests to disable the feature, when a request is made toplace a call to a phone number, a SIM card is not automatically selectedfor the call even if the phone number is synced with the feature. Inother words, disabling the feature for the device 102, overrides thesyncing of the phone number. On the other hand, if the user requests toenable the feature, when a request is made to place a call to a phonenumber that is synced with the feature, one of the multiple SIM cards210 is automatically selected for the call based on information providedby the service mapping server 104.

The call module 218 enables the placement of calls using the mobiledevice 102. In one embodiment, when a user of the mobile device 102request to call a phone number, the sync management module 216determines whether the automatic SIM card selection feature is enabledfor the device 102. If the feature is disabled, the sync managementmodule 216 presents an interface to the user asking the user to selectone of the SIM cards 210 of the device 102 for the call. The syncmanagement module 216 instructs the call module 218 to use the selectedSIM card for the call. The call module 218 retrieves identifyinginformation from the selected SIM card and places the call through thetransceiver device 208 using the retrieved identifying information.

If the feature is enabled, the sync management module 216 determineswhether the phone number being called is synced with the automatic SIMcard selection feature. In one embodiment, if the phone number is notsynched, the sync management module 216 presents the interface to theuser that asks the user to select a SIM card for the call, as describedabove. In one embodiment, information is stored as to which SIM card isselected by the user so that next time the user requests to call thephone number, the same SIM card is automatically used for the call bythe call module 218. In another embodiment, if the phone number is notsynced, the sync management module 216 presents an interface asking theuser whether to sync the number. If the user requests to sync thenumber, the sync management module 216 syncs the number as describedabove by obtaining service provider information for the phone number.Once the phone number is synched, the call is made as described below.If the user requests not to sync the number, the sync management module216 presents the interface asking the user to select a SIM card, asdescribed above.

In one embodiment, if the feature is enabled and the phone number issynced, the sync management module 216 retrieves from the contactsdatabase 220 service provider information obtained from the servicemapping server 104 for the phone number. If the service providerinformation in the database 220 for the phone number has not beenupdated within a certain period of time or if there is no serviceprovider information in the database 220 for the phone number, the syncmanagement module 216 requests and receives the information for thenumber from the service mapping server 104. Alternatively, the syncmanagement module 216 requests and receives service provider informationfrom the server 102 regardless of whether the contacts database 220currently includes information for the phone number. This could be done,for example, to make sure the call module 218 has the latestinformation.

The synch management module 216 determines the service provider of thephone number based on the service provider information obtained from theservice mapping server 104. The synch management module 216 selects aSIM card for the call storing identifying information of a subscriber ofthe phone number's service provider. The synch management module 216instructs the call module 218 to use the selected SIM card for the call.The call module 218 retrieves the identifying information from theselected SIM card and places the call to the phone number using theretrieved identifying information.

FIG. 3 is a block diagram illustrating a detailed view of a mobiledevice 102 according to an alternative embodiment. The architecture ofthe mobile device 102 is similar to that of FIG. 3, except the SIM cardsof FIG. 2 are replaced with an identifying database 302 in memory 212.In other words, instead of identifying information of service providersubscribers being stored in multiple SIM cards 210, the identifyinginformation is stored in an indentifying database 302 of the memory 212.For example, the identifying database 302 may store identifyinginformation of a subscriber of service provider A and the identifyinginformation of a subscriber of service provider B. In one embodiment,the identifying information is stored by a user of the mobile device102. In another embodiment, the identifying information is stored by oneor more mobile telecommunications service providers.

In this embodiment, when the sync management module 216 determines theservice provider of a phone number that a user requested be called basedon information provided by the service mapping server 104, the callmodule 218 retrieves identifying information of a subscriber of thephone number's service provider from the identifying database 302. Thecall module 218 places the call to the phone number through thetransceiver device 208 using the retrieved identifying information. Inthis embodiment, the feature of automatically selecting the identifyinginformation for the call from the identifying database 302 based oninformation obtained from the service mapping server 104 is referred toas the automatic selection feature.

The embodiments described above have described the mobile device 102automatically selecting which SIM card or identifying information to usefor a call based on information received from the service mapping server104. However, in other embodiments, the selection may be made by theservice mapping server 104. For example, when a user of a mobile device102 with multiple SIM cards requests to place a call to a phone number,the mobile device 102 can provide the phone number to the servicemapping server 104 and the server 104 can select which of the multipleSIM cards to use for the call based on information stored in the serviceprovider database 106. The service mapping server 104 instructs themobile device 102 to use the selected SIM card for the call.

III. Process

FIG. 4 is a flow chart 400 illustrating operations of a mobile device102 in adding a phone number according to one embodiment. The mobiledevice 102 receives 402 a request from a user of the mobile device 102to add a phone number for a contact. The request may be for a newcontact, for a new phone number of an existing contact, or to replace astored number of a contact with the received phone number. The mobiledevice 102 presents 404 an interface to the user inquiring whether tosync the phone number with the automatic SIM card selection feature.

If the user requests to sync the phone number, the mobile device 102communicates 406 with the service mapping server 104 to obtain serviceprovider information for the phone number. The mapping server 104accesses its internal database 106 and lookups the service providerinformation associated with the phone number, and returns thisinformation to the mobile device 102. The mobile device 102 stores 408the phone number along with the service provider information. On theother hand, if the user requests not to sync the phone number, themobile device 102 skips to step 408 and stores the phone number.

FIG. 5 is a flow chart 500 illustrating operations of a service mappingserver 104 in processing a request for service provider information of aphone number according to one embodiment. When the service mappingserver 104 receives 502 a request for service provider information of aphone number, the service mapping server 104 identifies 504 storedservice provider information of the phone number from the serviceprovider database 106. The service mapping server 104 transmits 506 theservice provider information to the mobile device 102.

The service mapping server 104 can be populated with the associationsbetween phones and service providers using manual data entry, bulkuploads of data retrieved from various services provides, as well as acombination of these approaches. The service mapping server 104 isconfigured to expose application programming interfaces by which serviceproviders can upload the lists of telephone numbers of subscribers totheir respective networks.

FIG. 6 is a flow chart 600 illustrating operations of a mobile device102 in processing a request to place a call according to one embodiment.Assume for purposes of this example that the mobile device 102 includesmultiple SIM cards. Each SIM card stores indentifying information of asubscriber of a service provider.

The mobile device 102 receives 602 a request to place a call to a phonenumber. If the automatic SIM card selection feature is enabled and thephone number is synced, the mobile device 102 determines 604 a serviceprovider of the phone number based on service provider informationreceived from the service mapping server 104. The mobile device 102selects 606 a SIM card for the call based on the service provider of thephone number. In one embodiment, the mobile device 102 selects the SIMcard storing indentifying information of a subscriber of the determinedservice provider. The mobile device 102 places 610 the call using theselected SIM card.

On the other hand, if the automatic SIM card selection feature is notenabled or the phone number is not synced, the mobile device 102presents 608 an interface asking the user to select a SIM card for thecall. The mobile device 102 places 610 the call using the selected SIMcard.

FIG. 7 is a flow chart 700 illustrating operations of a mobile device102 in processing a request to place a call according to an alternativeembodiment. Assume for purposes of this example that the mobile device102 stores indentifying information of subscribers of service providersin an internal database of the mobile device 102 (e.g., identifyingdatabase 302 of FIG. 3) instead of in multiple SIM cards.

The mobile device 102 receives 702 a request to place a call to a phonenumber. If the automatic selection feature is enabled and the phonenumber is synced, the mobile device 102 determines 704 a serviceprovider of the phone number based on service provider informationreceived from the service mapping server 104. The mobile device 102retrieves 706 identifying information of a subscriber of the determinedservice provider from the internal database of the device 102. Themobile device 102 places 712 the call using the retrieved identifyinginformation.

On the other hand, if the phone number is not synced or the automaticselection feature is not enabled, the mobile device 102 presents 708 aninterface asking the user to select a service provider for the call. Themobile device 102 retrieves 710 identifying information of a subscriberof the selected service provider. The mobile device 102 places 712 thecall using the retrieved identify information.

Those of skill in the art will recognize that other embodiments canperforms the steps of FIGS. 4-7 in different orders than described.Additionally, other embodiments may include different and/or additionalsteps than described.

Some portions of above description present the features of the presentinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. These operations, while describedfunctionally or logically, are understood to be implemented by computerprograms. Furthermore, it has also proven convenient at times, to referto these arrangements of operations as modules or by functional names,without loss of generality.

Unless specifically stated otherwise as apparent from the abovediscussion, it is appreciated that throughout the description,discussions utilizing terms such as “processing” or “computing” or“calculating” or “determining” or “displaying” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncould be embodied in software, firmware or hardware, and when embodiedin software, could be downloaded to reside on and be operated fromdifferent platforms used by real time network operating systems.

The disclosure of the present invention is intended to be illustrative,but not limiting, of the full scope of the invention, which is set forthin the following claims.

What is claimed:
 1. A computer-implemented method for processing arequest to place a call, the method comprising: receiving, by a mobiledevice, a request to call a phone number, the mobile device including aplurality of subscriber identification module (SIM) cards, each of theplurality of SIM cards including information for accessing a network ofa different service provider; automatically selecting, by the mobiledevice prior to placing the call to the phone number based on therequest, a SIM card from the plurality of SIM cards that includesinformation for accessing a network of a service provider of the phonenumber, the service provider of the phone number determined based onservice provider information received from a service mapping server forthe phone number; and placing, by the mobile device, the call to thephone number using the information stored on the selected SIM card todirectly access the network of the service provider of the phone number.2. The method of claim 1, wherein the SIM card is automatically selectedresponsive to an automatic SIM card selection feature being enabled. 3.The method of claim 1, wherein the SIM card is automatically selectedresponsive to an automatic SIM card selection feature being activatedfor the phone number being called.
 4. The method of claim 1, furthercomprising: receiving a request to add the phone number for a contact;communicating with the service mapping server to obtain the serviceprovider information of the phone number, the service providerinformation indicating the service provider of the phone number; andstoring the phone number and the service provider information.
 5. Themethod of claim 1, wherein the service provider information is obtainedfrom the service mapping server for the phone number responsive toreceiving the request to call the phone number.
 6. The method of claim1, wherein placing the call comprises: retrieving from the selected SIMcard identifying information of a subscriber of the service provider;and calling the phone number using the identifying information.
 7. Themethod of claim 6, wherein the identifying information allows the mobiledevice to access the network of the service provider of the phonenumber.
 8. A non-transitory computer-readable storage medium havingcomputer-executable instructions for processing a request to place acall, the computer-executable instructions configured to control amobile device to perform operations comprising: receiving, by the mobiledevice, a request to call a phone number, the mobile device including aplurality of subscriber identification module (SIM) cards, each of theplurality of SIM cards including information for accessing a network ofa different service provider; automatically selecting, by the mobiledevice prior to placing the call to the phone number based on therequest, a SIM card from the plurality of SIM cards that includesinformation for accessing a network of a service provider of the phonenumber, the service provider of the phone number determined based onservice provider information received from a service mapping server forthe phone number; and placing, by the mobile device, the call to thephone number using the selected SIM card to directly access the networkof the service provider of the phone number.
 9. The computer-readablestorage medium of claim 8, wherein the SIM card is automaticallyselected responsive to an automatic SIM card selection feature beingenabled.
 10. The computer-readable storage medium of claim 8, whereinthe SIM card is automatically selected responsive to an automatic SIMcard selection feature being activated for the phone number beingcalled.
 11. The computer-readable storage medium of claim 8, furthercomprising: receiving a request to add the phone number for a contact;communicating with the service mapping server to obtain the serviceprovider information of the phone number, the service providerinformation indicating the service provider of the phone number; storingthe phone number and the service provider information.
 12. Thecomputer-readable storage medium of claim 8, wherein the serviceprovider information is obtained from the service mapping server for thephone number responsive to receiving the request to call the phonenumber.
 13. The computer-readable storage medium of claim 8, whereinplacing the call comprises: retrieving from the selected SIM cardidentifying information of a subscriber of the service provider; andcalling the phone number using the identifying information.
 14. Thecomputer program product computer-readable storage medium of claim 13,wherein the identifying information allows the mobile device to accessthe network of the service provider of the phone number.
 15. A mobiledevice for processing a request to place a call, the mobile devicecomprising: a plurality of subscriber identification module (SIM) cards,each of the plurality of SIM cards including information for accessing anetwork of a different service provider; one or more processors; and anon-transitory computer-readable storage medium storingcomputer-executable instructions that when executed by the one or moreprocessor are configured to cause the mobile device to performoperations comprising: receiving a request to call a phone number;automatically selecting, prior to placing the call to the phone numberbased on the request, a SIM card from the plurality of SIM cards thatincludes information for accessing a network of a service provider ofthe phone number, the service provider of the phone number determinedbased on service provider information received from a service mappingserver for the phone number; and placing the call to the phone numberusing the selected SIM card to directly access the network of theservice provider of the phone number.
 16. The mobile device of claim 15,wherein the SIM card is automatically selected responsive to anautomatic SIM card selection feature being enabled.
 17. The mobiledevice of claim 15, wherein the SIM card is automatically selectedresponsive to an automatic SIM card selection feature being activatedfor the phone number being called.
 18. The mobile device of claim 15,wherein the computer-executable instructions are further configured tocause the mobile device to perform operations comprising: receiving arequest to add the phone number for a contact; communicating with theservice mapping server to obtain the service provider information of thephone number, the service provider information indicating the serviceprovider of the phone number; and storing the phone number and theservice provider information.
 19. The mobile device of claim 15, whereinthe service provider information is obtained from the service mappingserver for the phone number responsive to receiving the request to callthe phone number.
 20. The mobile device of claim 15, wherein placing thecall comprises: retrieving from the selected SIM card identifyinginformation of a subscriber of the service provider; and calling thephone number using the identifying information.